ডকুমেন্ট আপডেট করা (updateOne(), updateMany())

Java Technologies - জাভা মঙ্গোডিবি (Java MongoDB) - MongoDB তে CRUD অপারেশন (Create, Read, Update, Delete)
122

MongoDB-তে ডকুমেন্ট আপডেট করতে Java MongoDB Driver এর মধ্যে updateOne() এবং updateMany() মেথড দুটি ব্যবহৃত হয়। এই মেথডগুলো MongoDB কোলেকশনে এক বা একাধিক ডকুমেন্ট আপডেট করতে সহায়তা করে। তাদের ব্যবহার এবং কার্যকারিতা বুঝতে, আমরা প্রতিটি মেথডের ব্যবহার দেখবো।


1. updateOne() মেথড:

updateOne() মেথডটি একটি নির্দিষ্ট ডকুমেন্ট আপডেট করতে ব্যবহৃত হয় যা একটি কন্ডিশন মেট করে। এটি কেবল একটি ডকুমেন্টকে আপডেট করে, এমনকি যদি কন্ডিশন অনুযায়ী একাধিক ডকুমেন্ট মিলে থাকে তবুও শুধু প্রথমটি আপডেট করা হয়।

updateOne() মেথডের সিনট্যাক্স:

collection.updateOne(
    filter,    // A filter to specify the document to update
    update,    // The update operation to apply
    options    // Optional settings for the update operation
);
  • filter: যে ডকুমেন্টটি আপডেট করতে হবে, তার শর্ত।
  • update: যে পরিবর্তন বা আপডেট প্রযোজ্য হবে।
  • options: এটি ঐচ্ছিক। বিশেষ অপশন যেমন upsert (যদি ডকুমেন্ট না পাওয়া যায়, তবে একটি নতুন ডকুমেন্ট তৈরি হবে)।

উদাহরণ:

import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class MongoUpdateOneExample {
    public static void main(String[] args) {
        // MongoDB client setup
        var mongoClient = MongoClients.create("mongodb://localhost:27017");
        MongoDatabase database = mongoClient.getDatabase("mydb");
        MongoCollection<Document> collection = database.getCollection("users");

        // Filter to find a specific document
        Document filter = new Document("name", "John Doe");

        // The update operation to change the age
        Document update = new Document("$set", new Document("age", 35));

        // Update the document
        collection.updateOne(filter, update);

        System.out.println("Document updated successfully!");
    }
}

ব্যাখ্যা:

  • এই উদাহরণে, "name": "John Doe" শর্তে প্রথম মেলানো ডকুমেন্টের age ফিল্ডকে 35 এ আপডেট করা হয়েছে।
  • $set অপারেটর MongoDB-তে ডকুমেন্টের একটি বা একাধিক ফিল্ড আপডেট করার জন্য ব্যবহৃত হয়।

2. updateMany() মেথড:

updateMany() মেথডটি কোলেকশনের সকল ডকুমেন্ট আপডেট করতে ব্যবহৃত হয় যা একটি নির্দিষ্ট কন্ডিশন মেনে চলে। এটি একাধিক ডকুমেন্ট আপডেট করে, যেগুলি নির্দিষ্ট ফিল্টার কন্ডিশন মেটায়।

updateMany() মেথডের সিনট্যাক্স:

collection.updateMany(
    filter,    // A filter to specify the documents to update
    update,    // The update operation to apply
    options    // Optional settings for the update operation
);
  • filter: যে ডকুমেন্টগুলিকে আপডেট করতে হবে, তার শর্ত।
  • update: যে পরিবর্তন বা আপডেট প্রযোজ্য হবে।
  • options: এটি ঐচ্ছিক। এখানে upsert অপশনটি দেওয়া যেতে পারে, যা যদি কোনো ডকুমেন্ট না পাওয়া যায়, তবে নতুন ডকুমেন্ট তৈরি করবে।

উদাহরণ:

import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class MongoUpdateManyExample {
    public static void main(String[] args) {
        // MongoDB client setup
        var mongoClient = MongoClients.create("mongodb://localhost:27017");
        MongoDatabase database = mongoClient.getDatabase("mydb");
        MongoCollection<Document> collection = database.getCollection("users");

        // Filter to find all users older than 30
        Document filter = new Document("age", new Document("$gt", 30));

        // The update operation to set "status" to "active"
        Document update = new Document("$set", new Document("status", "active"));

        // Update all matching documents
        collection.updateMany(filter, update);

        System.out.println("Documents updated successfully!");
    }
}

ব্যাখ্যা:

  • এই উদাহরণে, age > 30 শর্তে সকল মেলানো ডকুমেন্টের "status" ফিল্ডকে "active" এ আপডেট করা হয়েছে।
  • $set অপারেটর ব্যবহৃত হয়েছে যাতে ডকুমেন্টের "status" ফিল্ড আপডেট হয়।

updateOne() এবং updateMany() এর মধ্যে পার্থক্য:

মেথডকাজউপযুক্ত ব্যবহার
updateOne()শুধুমাত্র একটি ডকুমেন্ট আপডেট করে যা শর্ত পূর্ণ করেযখন এক বা একাধিক শর্তের মধ্যে প্রথম ডকুমেন্ট আপডেট করতে চান
updateMany()একাধিক ডকুমেন্ট আপডেট করে যা শর্ত পূর্ণ করেযখন একাধিক ডকুমেন্ট আপডেট করতে চান

3. Additional Features:

  • Upsert:
    • upsert অপশন দিয়ে আপনি MongoDB-তে ডকুমেন্ট না পাওয়া গেলে নতুন ডকুমেন্ট তৈরি করতে পারেন।
    • upsert ব্যবহার করতে হলে updateOne() বা updateMany() মেথডের সাথে new UpdateOptions().upsert(true) ব্যবহার করা হয়।
collection.updateOne(
    new Document("name", "Jane Doe"),
    new Document("$set", new Document("age", 25)),
    new UpdateOptions().upsert(true)
);
  • Atomicity:
    • MongoDB-তে updateOne() এবং updateMany() মেথডগুলো অ্যাটমিক ট্রানজেকশনের মতো কাজ করে, অর্থাৎ যদি একাধিক ডকুমেন্ট আপডেট করা হয় তবে এটি সম্পূর্ণ হবে বা পুরোপুরি ব্যর্থ হবে।

MongoDB-তে updateOne() এবং updateMany() মেথডগুলো গুরুত্বপূর্ণ এবং প্রতিদিনের ডাটাবেস ম্যানিপুলেশনে খুবই কার্যকরী। updateOne() একটি ডকুমেন্ট আপডেট করে, এবং updateMany() একাধিক ডকুমেন্ট আপডেট করে, যা বড় ডেটাসেটে কাজ করার সময় সময় ও সংস্থান সাশ্রয়ী হয়। আপনি এই মেথডগুলোকে MongoDB-তে ডাটা আপডেটের সময় দক্ষভাবে ব্যবহার করতে পারেন, বিশেষত যখন আপনি ডেটার বড় ভলিউম আপডেট করতে চান।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...